home *** CD-ROM | disk | FTP | other *** search
/ Hottest 6 / Hottest 6 (1996)(PDSoft)[!].iso / software / emulators / frodo_1.5 / src / frodoprefs.s < prev    next >
Text File  |  1978-11-24  |  19KB  |  860 lines

  1. *
  2. *  Source machine generated by GadToolsBox V2.0b
  3. *  which is (c) Copyright 1991-1993 Jaba Development
  4. *
  5. *  GUI Designed by : Christian Bauer
  6. *
  7.  
  8.     include 'exec/types.i'
  9.     include 'intuition/intuition.i'
  10.     include 'intuition/classes.i'
  11.     include 'intuition/classusr.i'
  12.     include 'intuition/imageclass.i'
  13.     include 'intuition/gadgetclass.i'
  14.     include 'libraries/gadtools.i'
  15.     include 'graphics/displayinfo.i'
  16.     include 'graphics/gfxbase.i'
  17.  
  18.     XREF    _GadToolsBase
  19.     XREF    _IntuitionBase
  20.     XREF    _GfxBase
  21.     XREF    _SysBase
  22.     XREF    _UtilityBase
  23.  
  24.     XREF    _LVOOpenScreenTagList
  25.     XREF    _LVOOpenWindowTagList
  26.     XREF    _LVOCloseScreen
  27.     XREF    _LVOCloseWindow
  28.     XREF    _LVOPrintIText
  29.     XREF    _LVOLockPubScreen
  30.     XREF    _LVOUnlockPubScreen
  31.     XREF    _LVOSetMenuStrip
  32.     XREF    _LVOClearMenuStrip
  33.     XREF    _LVOGetVisualInfoA
  34.     XREF    _LVOFreeVisualInfo
  35.     XREF    _LVOCreateContext
  36.     XREF    _LVOCreateGadgetA
  37.     XREF    _LVOGT_RefreshWindow
  38.     XREF    _LVOFreeGadgets
  39.     XREF    _LVOCreateMenusA
  40.     XREF    _LVOLayoutMenusA
  41.     XREF    _LVOFreeMenus
  42.     XREF    _LVOOpenDiskFont
  43.     XREF    _LVOCloseFont
  44.     XREF    _LVODrawBevelBoxA
  45.     XREF    _LVOFreeClass
  46.     XREF    _LVONewObjectA
  47.     XREF    _LVODisposeObject
  48.     XREF    _LVOTextLength
  49.     XREF    _LVOCopyMem
  50.     XREF    _LVOFindTagItem
  51.     XREF    _LVOIntuiTextLength
  52.     XREF    _LVOForbid
  53.     XREF    _LVOPermit
  54.  
  55. GD_OK                                  EQU    0
  56. GD_Cancel                              EQU    1
  57. GD_Save                                EQU    2
  58. GD_Joystick1On                         EQU    3
  59. GD_Joystick2On                         EQU    4
  60. GD_JoystickSwap                        EQU    5
  61. GD_GetDisplayID                        EQU    6
  62. GD_DisplayID                           EQU    7
  63. GD_ScreenType                          EQU    8
  64. GD_NormalCycles                        EQU    9
  65. GD_BadLineCycles                       EQU    10
  66. GD_CIACycles                           EQU    11
  67. GD_Dir8                                EQU    12
  68. GD_Dir9                                EQU    13
  69. GD_Dir10                               EQU    14
  70. GD_Dir11                               EQU    15
  71. GD_UseSIDCard                          EQU    16
  72. GD_Drv8IsIEC                           EQU    17
  73. GD_Drv9IsIEC                           EQU    18
  74. GD_Drv10IsIEC                          EQU    19
  75. GD_Drv11IsIEC                          EQU    20
  76. GD_GetDir8                             EQU    21
  77. GD_GetDir9                             EQU    22
  78. GD_GetDir10                            EQU    23
  79. GD_GetDir11                            EQU    24
  80. GD_OtherIEC                            EQU    25
  81. GD_KeyboardYZ                          EQU    26
  82. GD_Collisions                          EQU    27
  83. GD_MapSlash                            EQU    28
  84. GD_FastReset                           EQU    29
  85. GD_SkipLatch                           EQU    30
  86.  
  87. Prefs_CNT    EQU    31
  88.  
  89.     XDEF    Scr
  90.     XDEF    VisualInfo
  91.     XDEF    PubScreenName
  92.     XDEF    PrefsWnd
  93.     XDEF    PrefsGList
  94.     XDEF    PrefsGadgets
  95.     XDEF    getClass
  96.     XDEF    getImage
  97.     XREF    initGet
  98.     XDEF    PrefsLeft
  99.     XDEF    PrefsTop
  100.     XDEF    PrefsWidth
  101.     XDEF    PrefsHeight
  102.     XDEF    Font
  103.     XDEF    Attr
  104.     XDEF    FontX
  105.     XDEF    FontY
  106.     XDEF    OffX
  107.     XDEF    OffY
  108.     XDEF    PrefsNGads
  109.  
  110. Scr:
  111.     DC.L    0
  112. VisualInfo:
  113.     DC.L    0
  114. PubScreenName:
  115.     DC.L    WBName
  116. WBName:
  117.     DC.B    'Workbench',0
  118.     CNOP  0,2
  119. PrefsWnd:
  120.     DC.L    0
  121. PrefsGList:
  122.     DC.L    0
  123. PrefsGadgets:
  124.     DCB.L    31,0
  125. BufNewGad:
  126.     DC.W    0,0,0,0
  127.     DC.L    0,0
  128.     DC.W    0
  129.     DC.L    0,0,0
  130. TD:
  131.     DC.L    TAG_DONE
  132. getClass:
  133.     DC.L    0
  134. getImage:
  135.     DC.L    0
  136. CL:
  137.     DC.L    GT_VisualInfo,0,TAG_DONE
  138. PrefsLeft:
  139.     DC.W    0
  140. PrefsTop:
  141.     DC.W    11
  142. PrefsWidth:
  143.     DC.W    632
  144. PrefsHeight:
  145.     DC.W    193
  146. Font:
  147.     DC.L    0
  148. FontX:
  149.     DC.W    0
  150. FontY:
  151.     DC.W    0
  152. OffX:
  153.     DC.W    0
  154. OffY:
  155.     DC.W    0
  156. Attr:
  157.     DC.L    0
  158.     DC.W    0
  159.     DC.B    0,0
  160. TopazName:
  161.     DC.B    'topaz.font',0
  162.     CNOP    0,2
  163.  
  164. PrefsGTypes:
  165.     DC.W    BUTTON_KIND
  166.     DC.W    BUTTON_KIND
  167.     DC.W    BUTTON_KIND
  168.     DC.W    CHECKBOX_KIND
  169.     DC.W    CHECKBOX_KIND
  170.     DC.W    CHECKBOX_KIND
  171.     DC.W    BUTTON_KIND
  172.     DC.W    TEXT_KIND
  173.     DC.W    CYCLE_KIND
  174.     DC.W    INTEGER_KIND
  175.     DC.W    INTEGER_KIND
  176.     DC.W    INTEGER_KIND
  177.     DC.W    STRING_KIND
  178.     DC.W    STRING_KIND
  179.     DC.W    STRING_KIND
  180.     DC.W    STRING_KIND
  181.     DC.W    CHECKBOX_KIND
  182.     DC.W    CHECKBOX_KIND
  183.     DC.W    CHECKBOX_KIND
  184.     DC.W    CHECKBOX_KIND
  185.     DC.W    CHECKBOX_KIND
  186.     DC.W    GENERIC_KIND
  187.     DC.W    GENERIC_KIND
  188.     DC.W    GENERIC_KIND
  189.     DC.W    GENERIC_KIND
  190.     DC.W    CHECKBOX_KIND
  191.     DC.W    CHECKBOX_KIND
  192.     DC.W    CHECKBOX_KIND
  193.     DC.W    CHECKBOX_KIND
  194.     DC.W    CHECKBOX_KIND
  195.     DC.W    INTEGER_KIND
  196.  
  197. PrefsNGads:
  198.     DC.W    84,171,101,16
  199.     DC.L    OKText,0
  200.     DC.W    GD_OK
  201.     DC.L    PLACETEXT_IN,0,0
  202.     DC.W    443,171,101,16
  203.     DC.L    CancelText,0
  204.     DC.W    GD_Cancel
  205.     DC.L    PLACETEXT_IN,0,0
  206.     DC.W    263,171,101,16
  207.     DC.L    SaveText,0
  208.     DC.W    GD_Save
  209.     DC.L    PLACETEXT_IN,0,0
  210.     DC.W    188,71,26,11
  211.     DC.L    Joystick1OnText,0
  212.     DC.W    GD_Joystick1On
  213.     DC.L    PLACETEXT_LEFT,0,0
  214.     DC.W    188,84,26,11
  215.     DC.L    Joystick2OnText,0
  216.     DC.W    GD_Joystick2On
  217.     DC.L    PLACETEXT_LEFT,0,0
  218.     DC.W    188,97,26,11
  219.     DC.L    JoystickSwapText,0
  220.     DC.W    GD_JoystickSwap
  221.     DC.L    PLACETEXT_LEFT,0,0
  222.     DC.W    377,117,193,14
  223.     DC.L    GetDisplayIDText,0
  224.     DC.W    GD_GetDisplayID
  225.     DC.L    0,0,0
  226.     DC.W    377,131,193,14
  227.     DC.L    DisplayIDText,0
  228.     DC.W    GD_DisplayID
  229.     DC.L    PLACETEXT_LEFT,0,0
  230.     DC.W    377,147,143,14
  231.     DC.L    ScreenTypeText,0
  232.     DC.W    GD_ScreenType
  233.     DC.L    PLACETEXT_LEFT,0,0
  234.     DC.W    188,6,81,14
  235.     DC.L    NormalCyclesText,0
  236.     DC.W    GD_NormalCycles
  237.     DC.L    PLACETEXT_LEFT,0,0
  238.     DC.W    188,22,81,14
  239.     DC.L    BadLineCyclesText,0
  240.     DC.W    GD_BadLineCycles
  241.     DC.L    PLACETEXT_LEFT,0,0
  242.     DC.W    188,38,81,14
  243.     DC.L    CIACyclesText,0
  244.     DC.W    GD_CIACycles
  245.     DC.L    PLACETEXT_LEFT,0,0
  246.     DC.W    377,18,193,14
  247.     DC.L    Dir8Text,0
  248.     DC.W    GD_Dir8
  249.     DC.L    PLACETEXT_LEFT,0,0
  250.     DC.W    377,34,193,14
  251.     DC.L    Dir9Text,0
  252.     DC.W    GD_Dir9
  253.     DC.L    PLACETEXT_LEFT,0,0
  254.     DC.W    377,50,193,14
  255.     DC.L    Dir10Text,0
  256.     DC.W    GD_Dir10
  257.     DC.L    PLACETEXT_LEFT,0,0
  258.     DC.W    377,66,193,14
  259.     DC.L    Dir11Text,0
  260.     DC.W    GD_Dir11
  261.     DC.L    PLACETEXT_LEFT,0,0
  262.     DC.W    188,111,26,11
  263.     DC.L    UseSIDCardText,0
  264.     DC.W    GD_UseSIDCard
  265.     DC.L    PLACETEXT_LEFT,0,0
  266.     DC.W    594,18,26,11
  267.     DC.L    Drv8IsIECText,0
  268.     DC.W    GD_Drv8IsIEC
  269.     DC.L    PLACETEXT_ABOVE,0,0
  270.     DC.W    594,34,26,11
  271.     DC.L    Drv9IsIECText,0
  272.     DC.W    GD_Drv9IsIEC
  273.     DC.L    0,0,0
  274.     DC.W    594,50,26,11
  275.     DC.L    Drv10IsIECText,0
  276.     DC.W    GD_Drv10IsIEC
  277.     DC.L    0,0,0
  278.     DC.W    594,66,26,11
  279.     DC.L    Drv11IsIECText,0
  280.     DC.W    GD_Drv11IsIEC
  281.     DC.L    0,0,0
  282.     DC.W    570,18,20,14
  283.     DC.L    GetDir8Text,0
  284.     DC.W    GD_GetDir8
  285.     DC.L    0,0,0
  286.     DC.W    570,34,20,14
  287.     DC.L    GetDir9Text,0
  288.     DC.W    GD_GetDir9
  289.     DC.L    0,0,0
  290.     DC.W    570,50,20,14
  291.     DC.L    GetDir10Text,0
  292.     DC.W    GD_GetDir10
  293.     DC.L    0,0,0
  294.     DC.W    570,66,20,14
  295.     DC.L    GetDir11Text,0
  296.     DC.W    GD_GetDir11
  297.     DC.L    0,0,0
  298.     DC.W    594,86,26,11
  299.     DC.L    OtherIECText,0
  300.     DC.W    GD_OtherIEC
  301.     DC.L    PLACETEXT_LEFT,0,0
  302.     DC.W    188,125,26,11
  303.     DC.L    KeyboardYZText,0
  304.     DC.W    GD_KeyboardYZ
  305.     DC.L    PLACETEXT_LEFT,0,0
  306.     DC.W    188,139,26,11
  307.     DC.L    CollisionsText,0
  308.     DC.W    GD_Collisions
  309.     DC.L    PLACETEXT_LEFT,0,0
  310.     DC.W    594,99,26,11
  311.     DC.L    MapSlashText,0
  312.     DC.W    GD_MapSlash
  313.     DC.L    PLACETEXT_LEFT,0,0
  314.     DC.W    188,153,26,11
  315.     DC.L    FastResetText,0
  316.     DC.W    GD_FastReset
  317.     DC.L    PLACETEXT_LEFT,0,0
  318.     DC.W    188,54,81,14
  319.     DC.L    SkipLatchText,0
  320.     DC.W    GD_SkipLatch
  321.     DC.L    PLACETEXT_LEFT,0,0
  322.  
  323. PrefsGTags:
  324.     DC.L    GT_Underscore,'_'
  325.     DC.L    TAG_DONE
  326.     DC.L    GT_Underscore,'_'
  327.     DC.L    TAG_DONE
  328.     DC.L    GT_Underscore,'_'
  329.     DC.L    TAG_DONE
  330.     DC.L    TAG_DONE
  331.     DC.L    TAG_DONE
  332.     DC.L    TAG_DONE
  333.     DC.L    TAG_DONE
  334.     DC.L    GTTX_Border,1
  335.     DC.L    TAG_DONE
  336.     DC.L    GTCY_Labels,ScreenTypeLabels
  337.     DC.L    TAG_DONE
  338.     DC.L    GTIN_Number,0
  339.     DC.L    GTIN_MaxChars,10
  340.     DC.L    TAG_DONE
  341.     DC.L    GTIN_Number,0
  342.     DC.L    GTIN_MaxChars,10
  343.     DC.L    TAG_DONE
  344.     DC.L    GTIN_Number,0
  345.     DC.L    GTIN_MaxChars,10
  346.     DC.L    TAG_DONE
  347.     DC.L    GTST_MaxChars,256
  348.     DC.L    TAG_DONE
  349.     DC.L    GTST_MaxChars,256
  350.     DC.L    TAG_DONE
  351.     DC.L    GTST_MaxChars,256
  352.     DC.L    TAG_DONE
  353.     DC.L    GTST_MaxChars,256
  354.     DC.L    TAG_DONE
  355.     DC.L    TAG_DONE
  356.     DC.L    TAG_DONE
  357.     DC.L    TAG_DONE
  358.     DC.L    TAG_DONE
  359.     DC.L    TAG_DONE
  360.     DC.L    TAG_DONE
  361.     DC.L    TAG_DONE
  362.     DC.L    TAG_DONE
  363.     DC.L    TAG_DONE
  364.     DC.L    TAG_DONE
  365.     DC.L    TAG_DONE
  366.     DC.L    TAG_DONE
  367.     DC.L    TAG_DONE
  368.     DC.L    TAG_DONE
  369.     DC.L    GTIN_Number,0
  370.     DC.L    GTIN_MaxChars,10
  371.     DC.L    TAG_DONE
  372.  
  373.  
  374. OKText:
  375.     DC.B    '_O',0
  376.  
  377. CancelText:
  378.     DC.B    '_C',0
  379.  
  380. SaveText:
  381.     DC.B    '_S',0
  382.  
  383. Joystick1OnText:
  384.     DC.B    'Joystick an Port 1',0
  385.  
  386. Joystick2OnText:
  387.     DC.B    'Joystick an Port 2',0
  388.  
  389. JoystickSwapText:
  390.     DC.B    'Joysticks vertauschen',0
  391.  
  392. GetDisplayIDText:
  393.     DC.B    '',0
  394.  
  395. DisplayIDText:
  396.     DC.B    'Bildschirmmodus',0
  397.  
  398. ScreenTypeText:
  399.     DC.B    'Bildschirmtyp',0
  400.  
  401. NormalCyclesText:
  402.     DC.B    'Zyklen/Zeile (CPU)',0
  403.  
  404. BadLineCyclesText:
  405.     DC.B    'Zyklen/Bad Line (CPU)',0
  406.  
  407. CIACyclesText:
  408.     DC.B    'Zyklen/Zeile (CIA)',0
  409.  
  410. Dir8Text:
  411.     DC.B    'Laufwerk 8',0
  412.  
  413. Dir9Text:
  414.     DC.B    'Laufwerk 9',0
  415.  
  416. Dir10Text:
  417.     DC.B    'Laufwerk 10',0
  418.  
  419. Dir11Text:
  420.     DC.B    'Laufwerk 11',0
  421.  
  422. UseSIDCardText:
  423.     DC.B    'SID-Karte benutzen',0
  424.  
  425. Drv8IsIECText:
  426.     DC.B    'IEC',0
  427.  
  428. Drv9IsIECText:
  429.     DC.B    '',0
  430.  
  431. Drv10IsIECText:
  432.     DC.B    '',0
  433.  
  434. Drv11IsIECText:
  435.     DC.B    '',0
  436.  
  437. GetDir8Text:
  438.     DC.B    '',0
  439.  
  440. GetDir9Text:
  441.     DC.B    '',0
  442.  
  443. GetDir10Text:
  444.     DC.B    '',0
  445.  
  446. GetDir11Text:
  447.     DC.B    '',0
  448.  
  449. OtherIECText:
  450.     DC.B    'IEC für andere Geräte verwenden',0
  451.  
  452. KeyboardYZText:
  453.     DC.B    'Amerik. Tastatur',0
  454.  
  455. CollisionsText:
  456.     DC.B    'Sprite-Kollisionen',0
  457.  
  458. MapSlashText:
  459.     DC.B    '"/" -> "\" in Dateinamen',0
  460.  
  461. FastResetText:
  462.     DC.B    'Schneller Reset',0
  463.  
  464. SkipLatchText:
  465.     DC.B    'Jedes (n)te Bild',0
  466.  
  467.     CNOP    0,2
  468.  
  469.     XDEF    ScreenTypeLabels
  470.  
  471. ScreenTypeLabels:
  472.     DC.L    ScreenTypeLab0
  473.     DC.L    ScreenTypeLab1
  474.     DC.L    ScreenTypeLab2
  475.     DC.L    ScreenTypeLab3
  476.     DC.L    ScreenTypeLab4
  477.     DC.L    ScreenTypeLab5
  478.     DC.L    0
  479.  
  480. ScreenTypeLab0:    DC.B    'EGS',0
  481. ScreenTypeLab1:    DC.B    'Picasso',0
  482. ScreenTypeLab2:    DC.B    'Amiga',0
  483. ScreenTypeLab3:    DC.B    'Amiga Mono',0
  484. ScreenTypeLab4:    DC.B    'CyBERgraphics',0
  485. ScreenTypeLab5:    DC.B    'Merlin',0
  486.  
  487.     CNOP    0,2
  488.  
  489.     XDEF    PrefsWindowTags
  490.  
  491. PrefsWindowTags:
  492. PrefsL:
  493.     DC.L    WA_Left,0
  494. PrefsT:
  495.     DC.L    WA_Top,0
  496. PrefsW:
  497.     DC.L    WA_Width,0
  498. PrefsH:
  499.     DC.L    WA_Height,0
  500.     DC.L    WA_IDCMP,BUTTONIDCMP!CHECKBOXIDCMP!TEXTIDCMP!CYCLEIDCMP!INTEGERIDCMP!STRINGIDCMP!IDCMP_GADGETUP!IDCMP_VANILLAKEY!IDCMP_REFRESHWINDOW
  501.     DC.L    WA_Flags,WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_SMART_REFRESH!WFLG_SIMPLE_REFRESH!WFLG_ACTIVATE
  502. PrefsWG:
  503.     DC.L    WA_Gadgets,0
  504.     DC.L    WA_Title,PrefsWTitle
  505.     DC.L    WA_ScreenTitle,PrefsSTitle
  506.     DC.L    WA_AutoAdjust,1
  507.     DC.L    TAG_DONE
  508.  
  509. PrefsWTitle:
  510.     DC.B    ' ',0
  511.     CNOP    0,2
  512.  
  513. PrefsSTitle:
  514.     DC.B    ' ',0
  515.     CNOP    0,2
  516.  
  517. ComputeX:
  518.     move.l  d1,-(sp)
  519.     move.w  FontX,d1
  520.     bra.s   ComputeItX
  521. ComputeY:
  522.     move.l  d1,-(sp)
  523.     move.w  FontY,d1
  524.     mulu    d1,d0
  525.     addq.w  #4,d0
  526.     divu    #8,d0
  527.     move.l  (sp)+,d1
  528.     rts
  529.  
  530. ComputeItX:
  531.     mulu    d1,d0
  532.     addq.w  #4,d0
  533.     divu    #8,d0
  534.     move.l  (sp)+,d1
  535.     rts
  536.  
  537. ComputeFont:
  538.     lea.l   Attr,a0
  539.     move.l  a0,Font
  540.     move.l  Scr,a1
  541.     lea.l   sc_RastPort(a1),a1
  542.     move.l  rp_Font(a1),a1
  543.     move.l  LN_NAME(a1),ta_Name(a0)
  544.     move.w  tf_YSize(a1),ta_YSize(a0)
  545.     move.w  tf_XSize(a1),FontX
  546.     move.w  tf_YSize(a1),FontY
  547.     move.l  Scr,a0
  548.     move.b  sc_WBorLeft(a0),d0
  549.     ext.w   d0
  550.     move.w  d0,OffX
  551.     move.l  sc_Font(a0),a1
  552.     move.w  ta_YSize(a1),d0
  553.     addq.w  #1,d0
  554.     move.b  sc_WBorTop(a0),d1
  555.     ext.w   d1
  556.     add.w   d1,d0
  557.     move.w  d0,OffY
  558.     tst.w   d2
  559.     beq.s   CompDone
  560.     tst.w   d3
  561.     beq.s   CompDone
  562.     move.w  d2,d0
  563.     jsr     ComputeX
  564.     add.w   OffX,d0
  565.     move.b  sc_WBorRight(a0),d1
  566.     ext.w   d1
  567.     add.w   d1,d0
  568.     cmp.w   sc_Width(a0),d0
  569.     bhi.s   UseTopaz
  570.     move.w  d3,d0
  571.     jsr     ComputeY
  572.     add.w   OffY,d0
  573.     move.b  sc_WBorBottom(a0),d1
  574.     ext.w   d1
  575.     add.w   d1,d0
  576.     cmp.w   sc_Height(a0),d0
  577.     bhi.s   UseTopaz
  578. CompDone:
  579.     rts
  580. UseTopaz:
  581.     move.l  Font,a0
  582.     move.l  #TopazName,ta_Name(a0)
  583.     move.w  #8,FontY
  584.     move.w  #8,FontX
  585.     move.w  #8,ta_YSize(a0)
  586.     rts
  587.  
  588.     XDEF    SetupScreen
  589.  
  590. SetupScreen
  591.     movem.l d1-d3/a0-a2/a6,-(sp)
  592.     move.l  _IntuitionBase,a6
  593.     move.l  PubScreenName,a0
  594.     jsr     _LVOLockPubScreen(a6)
  595.     move.l  d0,Scr
  596.     tst.l   d0
  597.     beq     SError
  598.     moveq   #0,d2
  599.     moveq   #0,d3
  600.     jsr     ComputeFont
  601.     move.l  Scr,a0
  602.     move.l  _GadToolsBase,a6
  603.     lea.l   TD,a1
  604.     jsr     _LVOGetVisualInfoA(a6)
  605.     move.l  d0,VisualInfo
  606.     move.l  d0,CL+4
  607.     tst.l   d0
  608.     beq     VError
  609.     jsr     initGet
  610.     move.l  d0,getClass
  611.     tst.l   d0
  612.     beq     CError
  613.     move.l  _IntuitionBase,a6
  614.     move.l  d0,a0
  615.     suba.l  a1,a1
  616.     lea.l   CL,a2
  617.     jsr     _LVONewObjectA(a6)
  618.     move.l  d0,getImage
  619.     tst.l   d0
  620.     beq     OError
  621.     moveq   #0,d0
  622. SDone:
  623.     movem.l (sp)+,d1-d3/a0-a2/a6
  624.     rts
  625. SError:
  626.     moveq   #1,d0
  627.     bra.s   SDone
  628. VError:
  629.     moveq   #2,d0
  630.     bra.s   SDone
  631. CError:
  632.     moveq   #4,d0
  633.     bra.s   SDone
  634. OError:
  635.     moveq   #5,d0
  636.     bra.s   SDone
  637.  
  638.     XDEF    CloseDownScreen
  639.  
  640. CloseDownScreen:
  641.     movem.l d0-d1/a0-a1/a6,-(sp)
  642.     move.l  _IntuitionBase,a6
  643.     move.l  getImage,a0
  644.     cmpa.l  #0,a0
  645.     beq.s   NoObj
  646.     jsr     _LVODisposeObject(a6)
  647. NoObj:
  648.     move.l  getClass,a0
  649.     cmpa.l  #0,a0
  650.     beq.s   NoCls
  651.     jsr     _LVOFreeClass(a6)
  652. NoCls:
  653.     move.l  _GadToolsBase,a6
  654.     move.l  VisualInfo,a0
  655.     cmpa.l  #0,a0
  656.     beq.s   NoVis
  657.     jsr     _LVOFreeVisualInfo(a6)
  658.     move.l  #0,VisualInfo
  659. NoVis:
  660.     move.l  _IntuitionBase,a6
  661.     suba.l  a0,a0
  662.     move.l  Scr,a1
  663.     cmpa.l  #0,a1
  664.     beq.s   NoScr
  665.     jsr     _LVOUnlockPubScreen(a6)
  666.     move.l  #0,Scr
  667. NoScr:
  668.     movem.l (sp)+,d0-d1/a0-a1/a6
  669.     rts
  670.  
  671.     XDEF    OpenPrefsWindow
  672.  
  673. OpenPrefsWindow:
  674.     movem.l d1-d4/a0-a4/a6,-(sp)
  675.     move.l  Scr,a0
  676.     moveq   #0,d3
  677.     moveq   #0,d2
  678.     move.w  PrefsWidth,d2
  679.     move.w  PrefsHeight,d3
  680.     jsr     ComputeFont
  681.     move.l  Scr,a0
  682.     move.l  d2,d0
  683.     jsr     ComputeX
  684.     move.l  d0,d4
  685.     move.w  PrefsLeft,d2
  686.     add.w   d2,d0
  687.     add.w   OffX,d0
  688.     move.b  sc_WBorRight(a0),d1
  689.     ext.w   d1
  690.     add.w   d1,d0
  691.     cmp.w   sc_Width(a0),d0
  692.     bls.s   PrefsWOk
  693.     move.w  sc_Width(a0),d0
  694.     sub.w   d4,d0
  695.     move.w  d0,d2
  696. PrefsWOk:
  697.     move.l  d3,d0
  698.     jsr     ComputeY
  699.     move.l  d0,d4
  700.     move.w  PrefsTop,d3
  701.     add.w   d3,d0
  702.     add.w   OffY,d0
  703.     move.b  sc_WBorBottom(a0),d1
  704.     ext.w   d1
  705.     add.w   d1,d0
  706.     cmp.w   sc_Height(a0),d0
  707.     bls.s   PrefsHOk
  708.     move.w  sc_Height(a0),d0
  709.     sub.w   d4,d0
  710.     move.w  d0,d3
  711. PrefsHOk:
  712.     move.l  _GadToolsBase,a6
  713.     lea.l   PrefsGList,a0
  714.     jsr     _LVOCreateContext(a6)
  715.     move.l  d0,a3
  716.     tst.l   d0
  717.     beq     PrefsCError
  718.     movem.w d2-d3,-(sp)
  719.     moveq   #0,d3
  720.     lea.l   PrefsGTags,a4
  721. PrefsGL:
  722.     move.l  _SysBase,a6
  723.     lea.l   PrefsNGads,a0
  724.     move.l  d3,d0
  725.     mulu    #gng_SIZEOF,d0
  726.     add.l   d0,a0
  727.     lea.l   BufNewGad,a1
  728.     moveq   #gng_SIZEOF,d0
  729.     jsr     _LVOCopyMem(a6)
  730.     lea.l   BufNewGad,a0
  731.     move.l  VisualInfo,gng_VisualInfo(a0)
  732.     move.l  Font,gng_TextAttr(a0)
  733.     move.w  gng_LeftEdge(a0),d0
  734.     jsr     ComputeX
  735.     add.w   OffX,d0
  736.     move.w  d0,gng_LeftEdge(a0)
  737.     move.w  gng_TopEdge(a0),d0
  738.     jsr     ComputeY
  739.     add.w   OffY,d0
  740.     move.w  d0,gng_TopEdge(a0)
  741.     move.w  gng_Width(a0),d0
  742.     jsr     ComputeX
  743.     move.w  d0,gng_Width(a0)
  744.     move.w  gng_Height(a0),d0
  745.     jsr     ComputeY
  746.     move.w  d0,gng_Height(a0)
  747.     move.l  _GadToolsBase,a6
  748.     lea.l   PrefsGTypes,a0
  749.     moveq   #0,d0
  750.     move.l  d3,d1
  751.     asl.l   #1,d1
  752.     add.l   d1,a0
  753.     move.w  (a0),d0
  754.     move.l  a3,a0
  755.     lea.l   BufNewGad,a1
  756.     move.l  a4,a2
  757.     jsr     _LVOCreateGadgetA(a6)
  758.     tst.l   d0
  759.     bne.s    PrefsCOK
  760.     movem.w (sp)+,d2-d3
  761.     bra     PrefsGError
  762. PrefsCOK:
  763.     move.l  d0,a3
  764.     move.l  d3,d0
  765.     asl.l   #2,d0
  766.     lea.l   PrefsGadgets,a0
  767.     add.l   d0,a0
  768.     move.l  a3,(a0)
  769.     move.l  a3,a0
  770.     move.l  d3,d0
  771.     asl.l   #1,d0
  772.     lea.l   PrefsGTypes,a1
  773.     add.l   d0,a1
  774.     cmp.w   #GENERIC_KIND,(a1)
  775.     bne.s   PrefsNoGen1
  776.     or.w    #GFLG_GADGIMAGE!GFLG_GADGHIMAGE,gg_Flags(a0)
  777.     or.w    #GACT_RELVERIFY,gg_Activation(a0)
  778.     move.l  getImage,gg_GadgetRender(a0)
  779.     move.l  getImage,gg_SelectRender(a0)
  780. PrefsNoGen1:
  781. PrefsTL:
  782.     tst.l   (a4)
  783.     beq.s   PrefsDN
  784.     addq.w  #8,a4
  785.     bra.s   PrefsTL
  786. PrefsDN:
  787.     addq.w  #4,a4
  788.     addq.w  #1,d3
  789.     cmp.w   #Prefs_CNT,d3
  790.     bmi     PrefsGL
  791.     movem.w (sp)+,d2-d3
  792.     move.l  PrefsGList,PrefsWG+4
  793.     ext.l   d2
  794.     ext.l   d3
  795.     move.l  d2,PrefsL+4
  796.     move.l  d3,PrefsT+4
  797.     move.l  Scr,a0
  798.     move.w  PrefsWidth,d0
  799.     jsr     ComputeX
  800.     add.w   OffX,d0
  801.     move.b  sc_WBorRight(a0),d1
  802.     ext.w   d1
  803.     add.w   d1,d0
  804.     move.l  d0,PrefsW+4
  805.     move.w  PrefsHeight,d0
  806.     jsr     ComputeY
  807.     add.w   OffY,d0
  808.     move.b  sc_WBorBottom(a0),d1
  809.     ext.w   d1
  810.     add.w   d1,d0
  811.     move.l  d0,PrefsH+4
  812.     move.l  _IntuitionBase,a6
  813.     suba.l  a0,a0
  814.     lea.l   PrefsWindowTags,a1
  815.     jsr     _LVOOpenWindowTagList(a6)
  816.     move.l  d0,PrefsWnd
  817.     tst.l   d0
  818.     beq     PrefsWError
  819.     move.l  _GadToolsBase,a6
  820.     move.l  PrefsWnd,a0
  821.     suba.l  a1,a1
  822.     jsr     _LVOGT_RefreshWindow(a6)
  823.     moveq   #0,d0
  824. PrefsDone:
  825.     movem.l (sp)+,d1-d4/a0-a4/a6
  826.     rts
  827. PrefsCError:
  828.     moveq   #1,d0
  829.     bra.s   PrefsDone
  830. PrefsGError:
  831.     moveq   #2,d0
  832.     bra.s   PrefsDone
  833. PrefsWError:
  834.     moveq   #4,d0
  835.     bra.s   PrefsDone
  836.  
  837.     XDEF    ClosePrefsWindow
  838.  
  839. ClosePrefsWindow:
  840.     movem.l d0-d1/a0-a2/a6,-(sp)
  841.     move.l  _IntuitionBase,a6
  842.     move.l  PrefsWnd,a0
  843.     cmpa.l  #0,a0
  844.     beq     PrefsNWnd
  845.     jsr     _LVOCloseWindow(a6)
  846.     move.l  #0,PrefsWnd
  847. PrefsNWnd:
  848.     move.l  _GadToolsBase,a6
  849.     move.l  PrefsGList,a0
  850.     cmpa.l  #0,a0
  851.     beq     PrefsNGad
  852.     jsr     _LVOFreeGadgets(a6)
  853.     move.l  #0,PrefsGList
  854. PrefsNGad:
  855.     movem.l (sp)+,d0-d1/a0-a2/a6
  856.     rts
  857.  
  858.  
  859.     end
  860.